package com.huluobo.kotlinim2006a.base

import android.os.Handler
import android.os.Looper

/**
 * Created by lc on 2023/2/1.
 */
interface BasePresenter {
    companion object {
        val handler by lazy {
            Handler(Looper.getMainLooper())//通过主线程Looper保证切换线程到主线程当中
        }
    }

    //1.在kotlin中,参数可以是一个没有返回值的方法(在kotlin中,所有的方法其实都是有返回值,只是没有个返回的的方法返回的类型是Unit)
    //2.在Java中,所有的方法的参数如果是一个方法,就必须有一个返回的类型,否则编译不能通过
    //3.f 代表一个方法的形参,Unit代表这个方法的返回值(没有返回值),()-> 代表当前方法会生成一个没有返回值的方法
    //4. f()代表形参参数形成的一个方法
    fun runOnUIThread(f: () -> Unit) {
        handler.post { f() }//把参数中的方法传入handler,在主线程中进行切换,运行在主线程中
    }
}